package com.duobaoyu.dby.supply.db.entity.config;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 操作日志
 *
 * @author chenms
 * @date 2023/10/21 11:37 AM
 */
@Data
@Document("sc_operation_log")
public class OperationLog implements Serializable {

    /**
     * 主键ID
     */
    @Id
    private String id;
    /**
     * 业务key.例如订单号
     */
    @Field("biz_key")
    private String bizKey;

    /**
     * 日志类型
     */
    @Field("log_type")
    private String logType;

    /**
     * 业务场景
     */
    @Field("scene")
    private String scene;

    /**
     * 操作来源
     */
    @Field("source")
    private String source;

    /**
     * 操作结果
     */
    @Field("change_item_list")
    private List<ChangeItem> changeItemList;

    /**
     * 操作人
     */
    @Field("operator")
    private String operator;

    /**
     * 创建时间
     */
    @Field("create_time")
    private LocalDateTime createTime;

    /**
     * 操作日志变动项
     */
    @Data
    public static class ChangeItem implements Serializable{

        /**
         * 字段
         */
        @Field("field")
        private String field;

        /**
         * 旧值
         */
        @Field("old_value")
        private Object oldValue;

        /**
         * 新值
         */
        @Field("new_value")
        private Object newValue;
    }


}
